Short:    Make methods and tags bases 1.1 (17.06.01)
Author:   Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl)
Uploader: Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl)
Version:  1.1 (17.06.01)
Type:     dev/misc
Replaces: dev/misc/MakeTagBase.lha
Requires: OS 2.0+, any CPU
Keywords: maketagbase redgroup sensei gruchala polska poland

WHAT'S THIS?
   This is a small utility to create methods and tags bases for BOOPSI and
   MUI classes, libraries and normal applications.

DISCLAIMER
   This  software  is  provided as-is, without warranty of any kind, either
   expressed or implied.  Under no circumstances will the authors be liable
   for  direct,  indirect,  incidental  or  consequential damages either to
   hardware or software or data loss resulting from the use of MakeTagBase.
   The entire risk as to the results of MakeTagBase is assumed by the user.

DESCRIPTION
   MakeTagBase can works in two modes:

   1) Convert string to bases mode.  When you want create new bases you
   should write for example:

   MakeTagBase ID BLAH

   and if ID is correct you'll recive for above example:

   Converting ID "BLAH"... Base 0x16A94880 TagBase 0x96A94880

   Now you can use 'Base' as a method dummy and 'TagBase' as tag base (it's
   'Base' bit or TAG_USER).

   2) Convert bases to string mode.  It could be useful if you forgot what
   string you used to create bases or you'd like to check either
	MakeTagBase or existing bases.  Example of usage:

   MakeTagBase BASE 0x16A94880

   Converting TagBase 0x16A94880... ID "BLAH"

   Template of MakeTagBase is ID,BASE=TAGBASE where ID is four character
   long string which contains big case A-Z and 0-9 numbers.  If other
   characters are present or length isn't correct error will occur.
   BASE=TAGBASE is base which you would like to convert to string.  It
   should starts with 0x or $ if it's hexedimal number and with 0-9 if it's
   decimal number.  In other cases error will occur.  You can't use ID and
   BASE=TAGBASE in the same time!

   Note that any unused bits like 31 or so aren't touched in this mode.  So
   MakeTagBase BASE 0x16A94880 and MakeTagBase TAGBASE 0x96A94880 are the
   same.

	Note that you're not allowed to use f.e.  "0000" as source string
	because it'll be converted to 0!!!

HOW IT WORKS?
   In making bases mode it's packing specified string to long word number
   (using it's own packing techniques (which you can learn for request, but
   I doubt that anybody will mail me for it ;) ).  In making string mode
   it's unpacking specified long word number to string.

REGISTERED BASES
	Currently "registered" bases are:

	- CMDL Base 0x18B1AA80 TagBase 0x98B1AA80 for command.library.

	If you're using this utility please contact me and I'll add your base to
	this list, so nobody will use the same bases as you (it's important f.e.
	when you're writing MUI subclasses to create unique bases!!!  F.e.  if
	two or more objects are using the same bases and are placed in one group
	and you'll do method or set attributes of one of these classes on group
	object (group object is setting unknown attributes pased to OM_SET for
	each its children) attribute will be set only for the top object on
	group list!  In other word it'll not do what you want...  Better start
	thinking about it in design state because when everyone is using your
	MCC it's too late to change anything...).  "Registration" is for free,
	so just contact me.  And always upload new MakeTagBases when they're
	released because they could contain more recent list of registered
	bases.

FUTURE
	Anything what you want, just contact me ;).

	New registered bases and bugs fixes if any.

HISTORY
   1.1 (17.06.01):

      - First public version.

      - Cleanup the source code.  Better error handling (now it's using
        dos.library error codes instead of custom one).

      - No stdio printf() routines anymore!  It's using dos.library
        instead.  The result is 2.5 smaller executable file...

      - Fixed BASE=TAGBASE mode (which starts not working after using
        dos.library Printf() because I used %c instead of %lc ;).

      - BASE=TAGBASE is now accepting several types of tagbases:  if it
        starts with 0x and $ base is in hexedimal format and if first
        character is between 0 and 9 base is in decimal format.

		- Compiled with size optimization turned on using SAS/C v6.58.

   1.01 (24.08.00):

      - Some fixes are made (I don't remember what exactly).

   1.0 (??.08.00):

      - First internal version.

AUTHOR
   Idea, testing and main programmer:

      Przemyslaw 'SENSEI' Gruchala (sensei@box43.gnet.pl)

   Support:
      Stephen Brookes


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
    1671     987 40.9% 17-Jun-01 05:46:30  MakeTagBase.info
    5216    3202 38.6% 17-Jun-01 07:29:40 +MakeTagBase
    4670    2177 53.3% 17-Jun-01 08:13:54 +MakeTagBase.readme
-------- ------- ----- --------- --------
   11557    6366 44.9% 23-Jun-101 01:55:34   3 files
